﻿using System;
using System.Text.RegularExpressions;
using System.Web.UI.WebControls;
using BONSAI.BLL;
using BONSAI.Common.DTO;

namespace BONSAI.Admin.UC
{
    public partial class Contact : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindStart();
            }
        }

        public void BindStart()
        {
            //// delete all
            //if (Request.QueryString["zxc"] != null)
            //{
            //    if (Request.QueryString["zxc"].ToString() == "1qwertyuiop")
            //    {
            //        em.Trainee_Delete(0);
            //    }
            //}
            ////=============

            var table = (new ContactsBO()).GetAll();
            GridView1.DataSource = table;
            GridView1.DataBind();

        }

        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            BindStart();
        }

        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            var dataKey = GridView1.DataKeys[e.RowIndex];
            if (dataKey != null)
            {
                string key = dataKey.Value.ToString();
                (new ContactsBO()).DeleteByID(key);
            }
            BindStart();
        }

        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            var dataKey = GridView1.DataKeys[e.NewEditIndex];
            if (dataKey != null)
            {
                string key = dataKey.Value.ToString();

                var table = (new ContactsBO()).GetByID(key);

                if (table != null)
                {
                    txtma.Text = table.ContactID;
                    txtNameVI.Text = table.Name;
                    txtAdresVi.Text = table.Address;
                    txtPhone.Text = table.Phone;
                    txtEmail.Text = table.Email;
                    txtVitri.Text = table.Position.ToString();
                }
            }

            BindStart();
        }

        public bool IsEmail(string inputEmail)
        {
            // inputEmail = NulltoString(inputEmail);
            const string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
                                    @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
                                    @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
            var re = new Regex(strRegex);
            return re.IsMatch(inputEmail);
        }

        protected void btcapnhat_Click(object sender, EventArgs e)
        {
            if (txtNameVI.Text == "")
            {
                WebMBox.Show("Vui lòng nhập thông tin: Tiêu đề.");
                return;
            }
            if (txtAdresVi.Text == "")
            {
                WebMBox.Show("Vui lòng nhập thông tin: Địa chỉ.");
                return;
            }
            if (txtVitri.Text == "")
            {
                WebMBox.Show("Vui lòng nhập thông tin: Vị trí.");
                return;
            }
            try
            {
                var a = Convert.ToInt32(txtVitri.Text);
            }
            catch (Exception)
            {

                WebMBox.Show("Thông tin vị trí phải là số nguyên.");
                return;
            }

            if (!string.IsNullOrEmpty(txtEmail.Text))
            {
                if (!IsEmail(txtEmail.Text))
                {
                    WebMBox.Show("Thông tin Email không hợp lệ: Email.");
                    return;
                }
            }


            string stnameVi = txtNameVI.Text;
            string strAdressVi = txtAdresVi.Text;
            string strPhone = txtPhone.Text;
            string strEmail = txtEmail.Text;
            int strVitri = Convert.ToInt32(txtVitri.Text);

            var contactsDto = new ContactsDTO
                                  {
                                      Name = stnameVi,
                                      Address = strAdressVi,
                                      Phone = strPhone,
                                      Email = strEmail,
                                      Position = strVitri
                                  };

            #region cập nhật

            (new ContactsBO()).Insert(contactsDto);
            txtma.Text = "";
            WebMBox.Show("Thêm mới thành công.");

            #endregion

            BindStart();
        }

        protected void btchinhsua_Click(object sender, EventArgs e)
        {
            if (txtma.Text == "")
            {
                WebMBox.Show("Vui lòng chọn liên hệ để chỉnh sửa.");
                return;
            }
            if (txtAdresVi.Text == "")
            {
                WebMBox.Show("Vui lòng nhập thông tin: Địa chỉ.");
                return;
            }
            if (!string.IsNullOrEmpty(txtEmail.Text))
            {
                if (!IsEmail(txtEmail.Text))
                {
                    WebMBox.Show("Thông tin Email không hợp lệ: Email.");
                    return;
                }
            }

            string stnameVi = txtNameVI.Text;
            string strAdressVi = txtAdresVi.Text;
            string strPhone = txtPhone.Text;
            string strEmail = txtEmail.Text;
            int strVitri = Convert.ToInt32(txtVitri.Text);
            var contactsDto = new ContactsDTO
                                  {
                                      Name = stnameVi,
                                      Address = strAdressVi,
                                      Phone = strPhone,
                                      Email = strEmail,
                                      Position = strVitri
                                  };

            #region cập nhật

            (new ContactsBO()).UpdateByID(contactsDto);
            WebMBox.Show("Cập nhật thành công.");

            #endregion

            BindStart();
        }
    }
}